import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Button;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.Model;

public class HelloPage extends WebPage {

	// コンストラクタはページ表示に呼ばれる
	public HelloPage() {

		// フォームコンポーネント
		Form form = new Form("form");
		add(form);

		// inputText
		final TextField inputText = new TextField("inputText", new Model());

		// result
		final Label result = new Label("result", "Hello! Wicket");
		result.setOutputMarkupId(true);

		// submit Buton
		final Button btn = new Button("sendBtn") {
			@Override
			// のイベントハンドラ
			public void onSubmit() {
				try { Thread.sleep(1000); } catch (Exception e) {};
				result.setDefaultModelObject(inputText.getConvertedInput());
			}
		};

		// ajax button
		final AjaxButton ajaxBtn = new AjaxButton("sendBtn") {
			@Override
			// のイベントハンドラ
			protected void onSubmit(AjaxRequestTarget arg0, Form<?> arg1) {
				try { Thread.sleep(1000); } catch (Exception e) {};
				result.setDefaultModelObject(inputText.getConvertedInput());
				arg0.addComponent(result);
			}
		};

		// フォームにセット
		form.add(inputText, btn, result);
	}
}
